package test;

import java.math.BigInteger;

public class PrimeNumberChecker {

    /**
     * 质数就是能被1和自身来整除其它都不可以
     * 且质数是必须大于1的自然数
     * */
    public static boolean isPrime(int number) {
        //判断质数的第一种判断方法
        if (number < 2) {
            return false;
        }
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static boolean isPrimeWithSqrt(int number) {
        //判断质数的第二种方法引入判断算数平方根判断质数
        if (number < 2) {
            return false;
        }
        // 计算算数平方根
        BigInteger sqrt = BigInteger.valueOf(number).sqrt();
        // 从 2 到算数平方根加 1 进行检查
        for (int i = 2; i <= sqrt.intValue(); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        int number = 11;  // 要判断的数
        if (isPrime(number)) {
            System.out.println(number + " 是一个质数。");
        } else {
            System.out.println(number + " 不是一个质数。");
        }
    }
}